﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Sofire.DataComm.Remoting.Server.Settings
{
    /// <summary>
    /// 表示服务实例的注册模式。
    /// </summary>
    public enum InstanceRegisterMode
    {
        /// <summary>
        /// 默认实例。如果 <see cref="Sofire.DataComm.Remoting.Server.Settings.ServiceSetting.InstanceCreating" /> 尚未注册，表示将一个实例应用于所注册的服务；否则表示是一个自定义实例。这是一个默认值。
        /// </summary>
        Default,
        /// <summary>
        /// 调用级实例。表示每一次客户端的调用都会产生一个新的实例。
        /// </summary>
        Call,
        /// <summary>
        /// 全局级实例。表示任何服务中都会只有一个实例。
        /// </summary>
        Global,
        /// <summary>
        /// 自定义实例。表示服务拥有一个自定义的实例。如果 <see cref="Sofire.DataComm.Remoting.Server.Settings.ServiceSetting.InstanceCreating" /> 尚未注册，将会抛出异常。注意，此模式不会校验服务实例是否实现了服务契约。
        /// </summary>
        Custom,
    }
}
